package onlinejudge.service;

import java.util.List;
import java.util.Map;

import onlinejudge.entity.Problem;
import onlinejudge.entity.ProblemLevel;
import onlinejudge.entity.ProblemType;
import onlinejudge.vo.ProblemVo;

public interface ProblemService {

	/**
	 * 获取所有题目
	 * @param parameters1
	 * @return
	 */
	List<ProblemVo> queryAllProblem(Map<String, Object> parameters1);
	/**
	 * 添加题目
	 * @param problem
	 */
	void addProblem(Problem problem);
	/**
	 *更新题目
	 * @param problem
	 */
	void updateProblem(Problem problem);
	/**
	 * 删除题目
	 * @param problemId
	 */
	void deleteProblem(Integer problemId);
	/**
	 * 获取题目
	 * @param problemId
	 */
	ProblemVo getProblem(Integer problemId);
	/**
	 * 获取题目数量
	 * @return
	 */
	Integer getProblemCount();
	/**
	 * 查询所有题目难度
	 * @return
	 */
	List<ProblemLevel> queryAllProblemLevel(Map<String, Object> parameters);
	/**
	 * 添加题目难度
	 * @param problemLevel
	 */
	void addProblemLevel(ProblemLevel problemLevel);
	/**
	 * 更新题目难度
	 * @param problemLevel
	 */
	void updateProblemLevel(ProblemLevel problemLevel);
	/**
	 * 删除题目难度
	 * @param problemLevelId
	 */
	void deleteProblemLevel(Integer problemLevelId);
	/**
	 * 获取题目难度数量
	 * @return
	 */
	Integer getProblemLevelCount();
	/**
	 * 查询所有题目类型
	 * @return
	 */
	List<ProblemType> queryAllProblemType(Map<String, Object> parameters);
	/**
	 * 添加题目类型
	 * @param problemType
	 */
	void addProblemType(ProblemType problemType);
	/**
	 * 更新题目类型
	 * @param problemType
	 */
	void updateProblemType(ProblemType problemType);
	/**
	 * 删除题目类型
	 * @param problemTypeId
	 */
	void deleteProblemType(Integer problemTypeId);
	/**
	 * 获取题目类似数量
	 * @return
	 */
	Integer getProblemTypeCount();
}
